﻿using UnityEngine;

public class CameraFollow : MonoBehaviour
{
    public GameObject plane; // 飞机对象
    public Vector3 offset; // 摄像机相对于飞机的偏移量
    public float smoothSpeed = 0.125f; // 平滑移动的速度
    private Vector3 velocity = Vector3.zero; // 摄像机移动的速度

    void Start()
    {
        // 如果没有设置偏移量，则自动计算偏移量
        if (offset == Vector3.zero)
        {
            offset = transform.position - plane.transform.position;
        }
    }

    void LateUpdate()
    {
        // 计算目标位置
        Vector3 targetPosition = plane.transform.position + plane.transform.right * offset.x + plane.transform.up * offset.y + plane.transform.forward * offset.z;
        // 使用平滑移动来更新摄像机的位置
        transform.position = Vector3.SmoothDamp(transform.position, targetPosition, ref velocity, smoothSpeed);
        // 旋转摄像机以始终面向飞机
        transform.LookAt(plane.transform);
    }
}
